Some data communications networks use flow control to regulate the flow of data and reduce network congestion at points within a network. A node receiving a stream of data from another node over a network sends a flow control message to indicate when a memory buffer is congested and more data should not be sent and/or to indicate when a memory buffer is ready to receive more data.
A switch uses flow control for some of its ports to regulate data received on those ports from nodes in the network. A switch port that has a dedicated bi-directional link to a node (a “link partner”) communicates with that node using a full-duplex Ethernet protocol that is configured upon initialization of the link using “auto-negotiation.”
During auto-negotiation, the switch advertises its own abilities to the link partner and receives advertised abilities of the link partner. The switch compares the two sets of abilities to determine how to configure the settings for the Ethernet protocol, including whether the link partner supports flow control (i.e., responds to flow control messages). The switch uses those settings until the link goes down or is reset.